// $ANTLR 3.4 C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g 2012-12-04 00:59:06

    package practica9;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class XMLLexer extends Lexer {
    public static final int EOF=-1;
    public static final int ABRIR_ANGULO=4;
    public static final int ABRIR_ANGULO_FIN=5;
    public static final int BLANCO=6;
    public static final int CERRAR_ANGULO=7;
    public static final int COMENTARIO=8;
    public static final int DIGITO=9;
    public static final int IDENT=10;
    public static final int LETRA=11;
    public static final int NUMERO=12;
    public static final int TEXTO=13;

         
         private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
         public ArrayList<RecognitionException> getErrors() {
            return errors;
         }
         @Override
         public void reportError (RecognitionException e) {
            String msg = getErrorMessage(e, getTokenNames());
            System.err.println(msg);
            errors.add(e);
         }
     


    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public XMLLexer() {} 
    public XMLLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public XMLLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g"; }

    // $ANTLR start "BLANCO"
    public final void mBLANCO() throws RecognitionException {
        try {
            int _type = BLANCO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:7: ( ( ' ' | '\\t' | '\\r\\n' | '\\n' ) )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:9: ( ' ' | '\\t' | '\\r\\n' | '\\n' )
            {
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:9: ( ' ' | '\\t' | '\\r\\n' | '\\n' )
            int alt1=4;
            switch ( input.LA(1) ) {
            case ' ':
                {
                alt1=1;
                }
                break;
            case '\t':
                {
                alt1=2;
                }
                break;
            case '\r':
                {
                alt1=3;
                }
                break;
            case '\n':
                {
                alt1=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;

            }

            switch (alt1) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:10: ' '
                    {
                    match(' '); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:14: '\\t'
                    {
                    match('\t'); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:19: '\\r\\n'
                    {
                    match("\r\n"); 



                    }
                    break;
                case 4 :
                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:26:26: '\\n'
                    {
                    match('\n'); 

                    }
                    break;

            }


            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "BLANCO"

    // $ANTLR start "DIGITO"
    public final void mDIGITO() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:27:16: ( '0' .. '9' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:
            {
            if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "DIGITO"

    // $ANTLR start "LETRA"
    public final void mLETRA() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:28:15: ( 'a' .. 'z' | 'A' .. 'Z' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:
            {
            if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "LETRA"

    // $ANTLR start "NUMERO"
    public final void mNUMERO() throws RecognitionException {
        try {
            int _type = NUMERO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:7: ( ( DIGITO )+ ( '.' ( DIGITO )* )? )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:9: ( DIGITO )+ ( '.' ( DIGITO )* )?
            {
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:9: ( DIGITO )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:18: ( '.' ( DIGITO )* )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0=='.') ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:19: '.' ( DIGITO )*
                    {
                    match('.'); 

                    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:29:22: ( DIGITO )*
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:
                    	    {
                    	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                    	        input.consume();
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        recover(mse);
                    	        throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop3;
                        }
                    } while (true);


                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NUMERO"

    // $ANTLR start "IDENT"
    public final void mIDENT() throws RecognitionException {
        try {
            int _type = IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:30:6: ( LETRA ( LETRA | DIGITO )* )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:30:8: LETRA ( LETRA | DIGITO )*
            {
            mLETRA(); 


            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:30:13: ( LETRA | DIGITO )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0 >= '0' && LA5_0 <= '9')||(LA5_0 >= 'A' && LA5_0 <= 'Z')||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "IDENT"

    // $ANTLR start "TEXTO"
    public final void mTEXTO() throws RecognitionException {
        try {
            int _type = TEXTO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:6: ( ( IDENT | ' ' | '.' )* )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:8: ( IDENT | ' ' | '.' )*
            {
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:8: ( IDENT | ' ' | '.' )*
            loop6:
            do {
                int alt6=4;
                switch ( input.LA(1) ) {
                case 'A':
                case 'B':
                case 'C':
                case 'D':
                case 'E':
                case 'F':
                case 'G':
                case 'H':
                case 'I':
                case 'J':
                case 'K':
                case 'L':
                case 'M':
                case 'N':
                case 'O':
                case 'P':
                case 'Q':
                case 'R':
                case 'S':
                case 'T':
                case 'U':
                case 'V':
                case 'W':
                case 'X':
                case 'Y':
                case 'Z':
                case 'a':
                case 'b':
                case 'c':
                case 'd':
                case 'e':
                case 'f':
                case 'g':
                case 'h':
                case 'i':
                case 'j':
                case 'k':
                case 'l':
                case 'm':
                case 'n':
                case 'o':
                case 'p':
                case 'q':
                case 'r':
                case 's':
                case 't':
                case 'u':
                case 'v':
                case 'w':
                case 'x':
                case 'y':
                case 'z':
                    {
                    alt6=1;
                    }
                    break;
                case ' ':
                    {
                    alt6=2;
                    }
                    break;
                case '.':
                    {
                    alt6=3;
                    }
                    break;

                }

                switch (alt6) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:9: IDENT
            	    {
            	    mIDENT(); 


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:15: ' '
            	    {
            	    match(' '); 

            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:31:19: '.'
            	    {
            	    match('.'); 

            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "TEXTO"

    // $ANTLR start "ABRIR_ANGULO"
    public final void mABRIR_ANGULO() throws RecognitionException {
        try {
            int _type = ABRIR_ANGULO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:32:13: ( '<' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:32:15: '<'
            {
            match('<'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ABRIR_ANGULO"

    // $ANTLR start "ABRIR_ANGULO_FIN"
    public final void mABRIR_ANGULO_FIN() throws RecognitionException {
        try {
            int _type = ABRIR_ANGULO_FIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:33:17: ( '</' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:33:19: '</'
            {
            match("</"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ABRIR_ANGULO_FIN"

    // $ANTLR start "CERRAR_ANGULO"
    public final void mCERRAR_ANGULO() throws RecognitionException {
        try {
            int _type = CERRAR_ANGULO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:34:14: ( '>' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:34:16: '>'
            {
            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "CERRAR_ANGULO"

    // $ANTLR start "COMENTARIO"
    public final void mCOMENTARIO() throws RecognitionException {
        try {
            int _type = COMENTARIO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:36:11: ( '<!--' ( options {greedy=false; } : . )* '-->' )
            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:36:13: '<!--' ( options {greedy=false; } : . )* '-->'
            {
            match("<!--"); 



            // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:36:20: ( options {greedy=false; } : . )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0=='-') ) {
                    int LA7_1 = input.LA(2);

                    if ( (LA7_1=='-') ) {
                        int LA7_3 = input.LA(3);

                        if ( (LA7_3=='>') ) {
                            alt7=2;
                        }
                        else if ( ((LA7_3 >= '\u0000' && LA7_3 <= '=')||(LA7_3 >= '?' && LA7_3 <= '\uFFFF')) ) {
                            alt7=1;
                        }


                    }
                    else if ( ((LA7_1 >= '\u0000' && LA7_1 <= ',')||(LA7_1 >= '.' && LA7_1 <= '\uFFFF')) ) {
                        alt7=1;
                    }


                }
                else if ( ((LA7_0 >= '\u0000' && LA7_0 <= ',')||(LA7_0 >= '.' && LA7_0 <= '\uFFFF')) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:36:45: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            match("-->"); 



            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "COMENTARIO"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:8: ( BLANCO | NUMERO | IDENT | TEXTO | ABRIR_ANGULO | ABRIR_ANGULO_FIN | CERRAR_ANGULO | COMENTARIO )
        int alt8=8;
        alt8 = dfa8.predict(input);
        switch (alt8) {
            case 1 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:10: BLANCO
                {
                mBLANCO(); 


                }
                break;
            case 2 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:17: NUMERO
                {
                mNUMERO(); 


                }
                break;
            case 3 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:24: IDENT
                {
                mIDENT(); 


                }
                break;
            case 4 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:30: TEXTO
                {
                mTEXTO(); 


                }
                break;
            case 5 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:36: ABRIR_ANGULO
                {
                mABRIR_ANGULO(); 


                }
                break;
            case 6 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:49: ABRIR_ANGULO_FIN
                {
                mABRIR_ANGULO_FIN(); 


                }
                break;
            case 7 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:66: CERRAR_ANGULO
                {
                mCERRAR_ANGULO(); 


                }
                break;
            case 8 :
                // C:\\Users\\usuario\\workspace\\Practica9-PL\\src\\main\\java\\practica9\\XMLLexer.g:1:80: COMENTARIO
                {
                mCOMENTARIO(); 


                }
                break;

        }

    }


    protected DFA8 dfa8 = new DFA8(this);
    static final String DFA8_eotS =
        "\1\5\1\2\2\uffff\1\10\1\uffff\1\15\2\uffff\2\10\3\uffff";
    static final String DFA8_eofS =
        "\16\uffff";
    static final String DFA8_minS =
        "\1\11\1\40\2\uffff\1\40\1\uffff\1\41\2\uffff\2\40\3\uffff";
    static final String DFA8_maxS =
        "\2\172\2\uffff\1\172\1\uffff\1\57\2\uffff\2\172\3\uffff";
    static final String DFA8_acceptS =
        "\2\uffff\1\1\1\2\1\uffff\1\4\1\uffff\1\7\1\3\2\uffff\1\6\1\10\1"+
        "\5";
    static final String DFA8_specialS =
        "\16\uffff}>";
    static final String[] DFA8_transitionS = {
            "\2\2\2\uffff\1\2\22\uffff\1\1\17\uffff\12\3\2\uffff\1\6\1\uffff"+
            "\1\7\2\uffff\32\4\6\uffff\32\4",
            "\1\5\15\uffff\1\5\22\uffff\32\5\6\uffff\32\5",
            "",
            "",
            "\1\5\15\uffff\1\5\1\uffff\12\12\7\uffff\32\11\6\uffff\32\11",
            "",
            "\1\14\15\uffff\1\13",
            "",
            "",
            "\1\5\15\uffff\1\5\1\uffff\12\12\7\uffff\32\11\6\uffff\32\11",
            "\1\5\15\uffff\1\5\1\uffff\12\12\7\uffff\32\11\6\uffff\32\11",
            "",
            "",
            ""
    };

    static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
    static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);
    static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS);
    static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS);
    static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS);
    static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS);
    static final short[][] DFA8_transition;

    static {
        int numStates = DFA8_transitionS.length;
        DFA8_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA8_transition[i] = DFA.unpackEncodedString(DFA8_transitionS[i]);
        }
    }

    class DFA8 extends DFA {

        public DFA8(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 8;
            this.eot = DFA8_eot;
            this.eof = DFA8_eof;
            this.min = DFA8_min;
            this.max = DFA8_max;
            this.accept = DFA8_accept;
            this.special = DFA8_special;
            this.transition = DFA8_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( BLANCO | NUMERO | IDENT | TEXTO | ABRIR_ANGULO | ABRIR_ANGULO_FIN | CERRAR_ANGULO | COMENTARIO );";
        }
    }
 

}